/* 解析lrc歌词,转换成网易云歌词格式
 * @param lrcText lrc歌词文本
 * @returns  {
    "duration": 2.58,
    "index": 0,
    "text": "上天啊",
    "time": 22.1,
    "unrender": false
  },
 */

function lrcToNetease(lrcText: string) {
  // 正则匹配 [mm:ss.xx] 或 [m:ss.xx]
  const timeRegex = /\[(\d{1,2}):(\d{2}(?:\.\d{2,3})?)\]/
  const lines = lrcText.split('\n')
  const result = []
  let entries: any = []

  // 第一步：提取有效歌词行和时间
  lines.forEach((line) => {
    const match = line.match(timeRegex)
    if (match) {
      const minutes = parseFloat(match[1])
      const seconds = parseFloat(match[2])
      const time = minutes * 60 + seconds
      // 提取歌词文本（去掉所有 [xx:xx.xx] 部分）
      const text = line.replace(/\[\d{1,2}:\d{2}(?:\.\d{2,3})?\]/g, '').trim()
      if (text) {
        entries.push({ time, text })
      }
    }
  })

  // 按时间排序（确保顺序正确）
  entries.sort((a, b) => a.time - b.time)

  // 第二步：生成最终的网易云格式
  return entries.map((item, index) => {
    const nextItem = entries[index + 1]
    const duration = nextItem ? nextItem.time - item.time : 5.0 // 最后一句持续5秒
    return {
      duration: Number(duration.toFixed(3)), // 保留三位小数
      index,
      text: item.text,
      time: Number(item.time.toFixed(3)),
      unrender: false
    }
  })
}

export { lrcToNetease }
